Biểu đồ JavaScript có thể được vẽ bằng dữ liệu JSON API & AJAX. Nhìn chung, bạn nên tìm nạp dữ liệu qua truy vấn AJAX thay vì nhúng nó vào trong trang web. Bằng cách này, bạn có thể tách riêng UI từ Data.
Việc phân tích cú pháp dữ liệu JSON và tạo biểu đồ từ nó khá đơn giản. Bằng cách tương tự, bạn cũng có thể dùng XML hoặc CSV để nhập dữ liệu vào biểu đồ.
Ví dụ bên dưới trình bày cách phân tích dữ liệu JSON từ truy vấn AJAX và vẽ biểu đồ. Nó cũng bao gồm mã nguồn mà bạn có thể chỉnh sửa trong trình duyệt hoặc lưu để chạy nội bộ.
<!DOCTYPE HTML>
<html>
<head>
<script>
window.onload = function() {
var dataPoints = [];
var chart = new CanvasJS.Chart("chartContainer", {
animationEnabled: true,
theme: "light2",
title: {
text: "Doanh số bán hàng mỗi ngày"
},
axisY: {
title: "Units - Số lượng",
titleFontSize: 24,
includeZero: true
},
data: [{
type: "column",
yValueFormatString: "#,### Units",
dataPoints: dataPoints
}]
});
function addData(data) {
for (var i = 0; i < data.length; i++) {
dataPoints.push({
x: new Date(data[i].date),
y: data[i].units
});
}
chart.render();
}
$.getJSON("https://canvasjs.com/data/gallery/javascript/daily-sales-data.json", addData);
}
</script>
</head>
<body>
<div id="chartContainer" style="height: 300px; width: 100%;"></div>
<script src="https://canvasjs.com/assets/script/jquery-1.11.1.min.js"></script>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
</body>
</html>
Nguồn: CanvasJS
Tùy biến biểu đồ
Bạn có thể dùng trục ngày tháng - thời gian bằng cách thiết lập timestamp (mốc thời gian hoặc ngày tháng cho giá trị x. Nếu dùng timestamp, nhớ đặt xValueType
thành dateTime
. Bạn cũng có thể đặt khoảng thời gian & loại khoảng thời gian cho các nhãn trục bằng cách dùng thuộc tính interval
và intervalType
tương ứng.
Source: https://quantrimang.com/hoc/code-mau-javascript-tao-bieu-do-do-thi-tu-du-lieu-json-bang-ajax-194684